// $ANTLR 3.4 C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g 2012-10-16 18:12:42

package PL.p5;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class parserFLEX extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACORCHETE", "ALLAVE", "AMPERSAND", "APARENTESIS", "ASTERISCO", "BARRA", "BLANCO", "CADENA", "CALLIDENT", "CCORCHETE", "CHAR", "CLLAVE", "COMA", "COMENTARIO", "COMILLAS", "COMPARADOR", "CPARENTESIS", "DECREMENTO", "DIGITO", "ESPACIO", "IDENT", "IGUAL", "INCREMENTO", "INT", "LETRA", "LINEA_COMENTARIO", "MAIN", "MAS", "MENOS", "NUEVA_LINEA", "NUMERO", "OR", "PORCENTAJE", "PUNTOYCOMA", "RANGO", "RETURN", "TIPO", "VOID"
    };

    public static final int EOF=-1;
    public static final int ACORCHETE=4;
    public static final int ALLAVE=5;
    public static final int AMPERSAND=6;
    public static final int APARENTESIS=7;
    public static final int ASTERISCO=8;
    public static final int BARRA=9;
    public static final int BLANCO=10;
    public static final int CADENA=11;
    public static final int CALLIDENT=12;
    public static final int CCORCHETE=13;
    public static final int CHAR=14;
    public static final int CLLAVE=15;
    public static final int COMA=16;
    public static final int COMENTARIO=17;
    public static final int COMILLAS=18;
    public static final int COMPARADOR=19;
    public static final int CPARENTESIS=20;
    public static final int DECREMENTO=21;
    public static final int DIGITO=22;
    public static final int ESPACIO=23;
    public static final int IDENT=24;
    public static final int IGUAL=25;
    public static final int INCREMENTO=26;
    public static final int INT=27;
    public static final int LETRA=28;
    public static final int LINEA_COMENTARIO=29;
    public static final int MAIN=30;
    public static final int MAS=31;
    public static final int MENOS=32;
    public static final int NUEVA_LINEA=33;
    public static final int NUMERO=34;
    public static final int OR=35;
    public static final int PORCENTAJE=36;
    public static final int PUNTOYCOMA=37;
    public static final int RANGO=38;
    public static final int RETURN=39;
    public static final int TIPO=40;
    public static final int VOID=41;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public parserFLEX(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public parserFLEX(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return parserFLEX.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g"; }



    // $ANTLR start "entrada"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:16:1: entrada : def_token def_variables def_reglas funcion EOF ;
    public final void entrada() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:16:8: ( def_token def_variables def_reglas funcion EOF )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:16:10: def_token def_variables def_reglas funcion EOF
            {
            pushFollow(FOLLOW_def_token_in_entrada46);
            def_token();

            state._fsp--;


            pushFollow(FOLLOW_def_variables_in_entrada48);
            def_variables();

            state._fsp--;


            pushFollow(FOLLOW_def_reglas_in_entrada50);
            def_reglas();

            state._fsp--;


            pushFollow(FOLLOW_funcion_in_entrada52);
            funcion();

            state._fsp--;


            match(input,EOF,FOLLOW_EOF_in_entrada54); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "entrada"



    // $ANTLR start "def_token"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:1: def_token : ( IDENT ACORCHETE ( RANGO )+ CCORCHETE )+ ;
    public final void def_token() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:10: ( ( IDENT ACORCHETE ( RANGO )+ CCORCHETE )+ )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:12: ( IDENT ACORCHETE ( RANGO )+ CCORCHETE )+
            {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:12: ( IDENT ACORCHETE ( RANGO )+ CCORCHETE )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==IDENT) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:13: IDENT ACORCHETE ( RANGO )+ CCORCHETE
            	    {
            	    match(input,IDENT,FOLLOW_IDENT_in_def_token62); 

            	    match(input,ACORCHETE,FOLLOW_ACORCHETE_in_def_token64); 

            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:29: ( RANGO )+
            	    int cnt1=0;
            	    loop1:
            	    do {
            	        int alt1=2;
            	        int LA1_0 = input.LA(1);

            	        if ( (LA1_0==RANGO) ) {
            	            alt1=1;
            	        }


            	        switch (alt1) {
            	    	case 1 :
            	    	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:18:30: RANGO
            	    	    {
            	    	    match(input,RANGO,FOLLOW_RANGO_in_def_token67); 

            	    	    }
            	    	    break;

            	    	default :
            	    	    if ( cnt1 >= 1 ) break loop1;
            	                EarlyExitException eee =
            	                    new EarlyExitException(1, input);
            	                throw eee;
            	        }
            	        cnt1++;
            	    } while (true);


            	    match(input,CCORCHETE,FOLLOW_CCORCHETE_in_def_token71); 

            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "def_token"



    // $ANTLR start "def_variables"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:20:1: def_variables : PORCENTAJE ALLAVE ( TIPO IDENT PUNTOYCOMA )+ PORCENTAJE CLLAVE ;
    public final void def_variables() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:20:14: ( PORCENTAJE ALLAVE ( TIPO IDENT PUNTOYCOMA )+ PORCENTAJE CLLAVE )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:20:16: PORCENTAJE ALLAVE ( TIPO IDENT PUNTOYCOMA )+ PORCENTAJE CLLAVE
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_variables80); 

            match(input,ALLAVE,FOLLOW_ALLAVE_in_def_variables82); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:20:34: ( TIPO IDENT PUNTOYCOMA )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==TIPO) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:20:35: TIPO IDENT PUNTOYCOMA
            	    {
            	    match(input,TIPO,FOLLOW_TIPO_in_def_variables85); 

            	    match(input,IDENT,FOLLOW_IDENT_in_def_variables87); 

            	    match(input,PUNTOYCOMA,FOLLOW_PUNTOYCOMA_in_def_variables89); 

            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);


            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_variables93); 

            match(input,CLLAVE,FOLLOW_CLLAVE_in_def_variables95); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "def_variables"



    // $ANTLR start "regla"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:22:1: regla : regla1 ( regla2 )* regla3 ;
    public final void regla() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:22:6: ( regla1 ( regla2 )* regla3 )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:22:9: regla1 ( regla2 )* regla3
            {
            pushFollow(FOLLOW_regla1_in_regla103);
            regla1();

            state._fsp--;


            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:22:16: ( regla2 )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==APARENTESIS) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:22:16: regla2
            	    {
            	    pushFollow(FOLLOW_regla2_in_regla105);
            	    regla2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);


            pushFollow(FOLLOW_regla3_in_regla108);
            regla3();

            state._fsp--;


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla"



    // $ANTLR start "regla1"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:23:1: regla1 : CALLIDENT ( MAS | ASTERISCO )? ;
    public final void regla1() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:23:7: ( CALLIDENT ( MAS | ASTERISCO )? )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:23:9: CALLIDENT ( MAS | ASTERISCO )?
            {
            match(input,CALLIDENT,FOLLOW_CALLIDENT_in_regla1114); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:23:19: ( MAS | ASTERISCO )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==ASTERISCO||LA5_0==MAS) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==MAS ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla1"



    // $ANTLR start "regla2"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:1: regla2 : APARENTESIS CALLIDENT ( OR CALLIDENT )+ CPARENTESIS ( MAS | ASTERISCO )? ;
    public final void regla2() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:7: ( APARENTESIS CALLIDENT ( OR CALLIDENT )+ CPARENTESIS ( MAS | ASTERISCO )? )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:9: APARENTESIS CALLIDENT ( OR CALLIDENT )+ CPARENTESIS ( MAS | ASTERISCO )?
            {
            match(input,APARENTESIS,FOLLOW_APARENTESIS_in_regla2127); 

            match(input,CALLIDENT,FOLLOW_CALLIDENT_in_regla2129); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:31: ( OR CALLIDENT )+
            int cnt6=0;
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==OR) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:32: OR CALLIDENT
            	    {
            	    match(input,OR,FOLLOW_OR_in_regla2132); 

            	    match(input,CALLIDENT,FOLLOW_CALLIDENT_in_regla2134); 

            	    }
            	    break;

            	default :
            	    if ( cnt6 >= 1 ) break loop6;
                        EarlyExitException eee =
                            new EarlyExitException(6, input);
                        throw eee;
                }
                cnt6++;
            } while (true);


            match(input,CPARENTESIS,FOLLOW_CPARENTESIS_in_regla2138); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:24:59: ( MAS | ASTERISCO )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==ASTERISCO||LA7_0==MAS) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==MAS ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla2"



    // $ANTLR start "regla3"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:25:1: regla3 : IDENT ( INCREMENTO | DECREMENTO ) PUNTOYCOMA ;
    public final void regla3() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:25:7: ( IDENT ( INCREMENTO | DECREMENTO ) PUNTOYCOMA )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:25:9: IDENT ( INCREMENTO | DECREMENTO ) PUNTOYCOMA
            {
            match(input,IDENT,FOLLOW_IDENT_in_regla3151); 

            if ( input.LA(1)==DECREMENTO||input.LA(1)==INCREMENTO ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input,PUNTOYCOMA,FOLLOW_PUNTOYCOMA_in_regla3159); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla3"



    // $ANTLR start "def_reglas"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:27:1: def_reglas : PORCENTAJE PORCENTAJE ( regla )+ PORCENTAJE PORCENTAJE ;
    public final void def_reglas() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:27:11: ( PORCENTAJE PORCENTAJE ( regla )+ PORCENTAJE PORCENTAJE )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:27:13: PORCENTAJE PORCENTAJE ( regla )+ PORCENTAJE PORCENTAJE
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_reglas166); 

            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_reglas168); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:27:35: ( regla )+
            int cnt8=0;
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==CALLIDENT) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:27:36: regla
            	    {
            	    pushFollow(FOLLOW_regla_in_def_reglas171);
            	    regla();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt8 >= 1 ) break loop8;
                        EarlyExitException eee =
                            new EarlyExitException(8, input);
                        throw eee;
                }
                cnt8++;
            } while (true);


            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_reglas175); 

            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_def_reglas177); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "def_reglas"



    // $ANTLR start "funcion"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:29:1: funcion : ( def_funcion def_cuerpo )+ ;
    public final void funcion() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:29:8: ( ( def_funcion def_cuerpo )+ )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:29:10: ( def_funcion def_cuerpo )+
            {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:29:10: ( def_funcion def_cuerpo )+
            int cnt9=0;
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==TIPO) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:29:11: def_funcion def_cuerpo
            	    {
            	    pushFollow(FOLLOW_def_funcion_in_funcion185);
            	    def_funcion();

            	    state._fsp--;


            	    pushFollow(FOLLOW_def_cuerpo_in_funcion187);
            	    def_cuerpo();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt9 >= 1 ) break loop9;
                        EarlyExitException eee =
                            new EarlyExitException(9, input);
                        throw eee;
                }
                cnt9++;
            } while (true);


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "funcion"



    // $ANTLR start "def_funcion"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:1: def_funcion : TIPO ( IDENT | MAIN ) APARENTESIS ( VOID | ( llamada_variable ( COMA llamada_variable )* ) ) CPARENTESIS ;
    public final void def_funcion() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:12: ( TIPO ( IDENT | MAIN ) APARENTESIS ( VOID | ( llamada_variable ( COMA llamada_variable )* ) ) CPARENTESIS )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:14: TIPO ( IDENT | MAIN ) APARENTESIS ( VOID | ( llamada_variable ( COMA llamada_variable )* ) ) CPARENTESIS
            {
            match(input,TIPO,FOLLOW_TIPO_in_def_funcion195); 

            if ( input.LA(1)==IDENT||input.LA(1)==MAIN ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input,APARENTESIS,FOLLOW_APARENTESIS_in_def_funcion203); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:44: ( VOID | ( llamada_variable ( COMA llamada_variable )* ) )
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==VOID) ) {
                alt11=1;
            }
            else if ( (LA11_0==TIPO) ) {
                alt11=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;

            }
            switch (alt11) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:45: VOID
                    {
                    match(input,VOID,FOLLOW_VOID_in_def_funcion206); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:52: ( llamada_variable ( COMA llamada_variable )* )
                    {
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:52: ( llamada_variable ( COMA llamada_variable )* )
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:53: llamada_variable ( COMA llamada_variable )*
                    {
                    pushFollow(FOLLOW_llamada_variable_in_def_funcion211);
                    llamada_variable();

                    state._fsp--;


                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:70: ( COMA llamada_variable )*
                    loop10:
                    do {
                        int alt10=2;
                        int LA10_0 = input.LA(1);

                        if ( (LA10_0==COMA) ) {
                            alt10=1;
                        }


                        switch (alt10) {
                    	case 1 :
                    	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:30:71: COMA llamada_variable
                    	    {
                    	    match(input,COMA,FOLLOW_COMA_in_def_funcion214); 

                    	    pushFollow(FOLLOW_llamada_variable_in_def_funcion216);
                    	    llamada_variable();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop10;
                        }
                    } while (true);


                    }


                    }
                    break;

            }


            match(input,CPARENTESIS,FOLLOW_CPARENTESIS_in_def_funcion222); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "def_funcion"



    // $ANTLR start "llamada_variable"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:1: llamada_variable : TIPO ( ASTERISCO )? IDENT ( ACORCHETE CCORCHETE )? ;
    public final void llamada_variable() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:17: ( TIPO ( ASTERISCO )? IDENT ( ACORCHETE CCORCHETE )? )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:19: TIPO ( ASTERISCO )? IDENT ( ACORCHETE CCORCHETE )?
            {
            match(input,TIPO,FOLLOW_TIPO_in_llamada_variable228); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:24: ( ASTERISCO )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==ASTERISCO) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:25: ASTERISCO
                    {
                    match(input,ASTERISCO,FOLLOW_ASTERISCO_in_llamada_variable231); 

                    }
                    break;

            }


            match(input,IDENT,FOLLOW_IDENT_in_llamada_variable235); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:43: ( ACORCHETE CCORCHETE )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==ACORCHETE) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:31:44: ACORCHETE CCORCHETE
                    {
                    match(input,ACORCHETE,FOLLOW_ACORCHETE_in_llamada_variable238); 

                    match(input,CCORCHETE,FOLLOW_CCORCHETE_in_llamada_variable240); 

                    }
                    break;

            }


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "llamada_variable"



    // $ANTLR start "def_cuerpo"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:1: def_cuerpo : ALLAVE ( ( sentencia | retorno ) PUNTOYCOMA )* CLLAVE ;
    public final void def_cuerpo() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:11: ( ALLAVE ( ( sentencia | retorno ) PUNTOYCOMA )* CLLAVE )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:13: ALLAVE ( ( sentencia | retorno ) PUNTOYCOMA )* CLLAVE
            {
            match(input,ALLAVE,FOLLOW_ALLAVE_in_def_cuerpo248); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:20: ( ( sentencia | retorno ) PUNTOYCOMA )*
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==IDENT||LA15_0==RETURN) ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:21: ( sentencia | retorno ) PUNTOYCOMA
            	    {
            	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:21: ( sentencia | retorno )
            	    int alt14=2;
            	    int LA14_0 = input.LA(1);

            	    if ( (LA14_0==IDENT) ) {
            	        alt14=1;
            	    }
            	    else if ( (LA14_0==RETURN) ) {
            	        alt14=2;
            	    }
            	    else {
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 14, 0, input);

            	        throw nvae;

            	    }
            	    switch (alt14) {
            	        case 1 :
            	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:22: sentencia
            	            {
            	            pushFollow(FOLLOW_sentencia_in_def_cuerpo252);
            	            sentencia();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:32:33: retorno
            	            {
            	            pushFollow(FOLLOW_retorno_in_def_cuerpo255);
            	            retorno();

            	            state._fsp--;


            	            }
            	            break;

            	    }


            	    match(input,PUNTOYCOMA,FOLLOW_PUNTOYCOMA_in_def_cuerpo258); 

            	    }
            	    break;

            	default :
            	    break loop15;
                }
            } while (true);


            match(input,CLLAVE,FOLLOW_CLLAVE_in_def_cuerpo262); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "def_cuerpo"



    // $ANTLR start "retorno"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:33:1: retorno : RETURN ( CADENA | NUMERO ) ;
    public final void retorno() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:33:8: ( RETURN ( CADENA | NUMERO ) )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:33:10: RETURN ( CADENA | NUMERO )
            {
            match(input,RETURN,FOLLOW_RETURN_in_retorno268); 

            if ( input.LA(1)==CADENA||input.LA(1)==NUMERO ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "retorno"



    // $ANTLR start "sentencia"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:1: sentencia : ( ( IDENT IGUAL ( llamada_funcion | ( NUMERO | CADENA ) ) ) | llamada_funcion );
    public final void sentencia() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:10: ( ( IDENT IGUAL ( llamada_funcion | ( NUMERO | CADENA ) ) ) | llamada_funcion )
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==IDENT) ) {
                int LA17_1 = input.LA(2);

                if ( (LA17_1==IGUAL) ) {
                    alt17=1;
                }
                else if ( (LA17_1==APARENTESIS) ) {
                    alt17=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 17, 1, input);

                    throw nvae;

                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;

            }
            switch (alt17) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:12: ( IDENT IGUAL ( llamada_funcion | ( NUMERO | CADENA ) ) )
                    {
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:12: ( IDENT IGUAL ( llamada_funcion | ( NUMERO | CADENA ) ) )
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:13: IDENT IGUAL ( llamada_funcion | ( NUMERO | CADENA ) )
                    {
                    match(input,IDENT,FOLLOW_IDENT_in_sentencia283); 

                    match(input,IGUAL,FOLLOW_IGUAL_in_sentencia285); 

                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:25: ( llamada_funcion | ( NUMERO | CADENA ) )
                    int alt16=2;
                    int LA16_0 = input.LA(1);

                    if ( (LA16_0==IDENT) ) {
                        alt16=1;
                    }
                    else if ( (LA16_0==CADENA||LA16_0==NUMERO) ) {
                        alt16=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 16, 0, input);

                        throw nvae;

                    }
                    switch (alt16) {
                        case 1 :
                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:26: llamada_funcion
                            {
                            pushFollow(FOLLOW_llamada_funcion_in_sentencia288);
                            llamada_funcion();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:44: ( NUMERO | CADENA )
                            {
                            if ( input.LA(1)==CADENA||input.LA(1)==NUMERO ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:34:66: llamada_funcion
                    {
                    pushFollow(FOLLOW_llamada_funcion_in_sentencia304);
                    llamada_funcion();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sentencia"



    // $ANTLR start "llamada_funcion"
    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:1: llamada_funcion : IDENT APARENTESIS ( ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )* )? CPARENTESIS ;
    public final void llamada_funcion() throws RecognitionException {
        try {
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:16: ( IDENT APARENTESIS ( ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )* )? CPARENTESIS )
            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:18: IDENT APARENTESIS ( ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )* )? CPARENTESIS
            {
            match(input,IDENT,FOLLOW_IDENT_in_llamada_funcion310); 

            match(input,APARENTESIS,FOLLOW_APARENTESIS_in_llamada_funcion312); 

            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:36: ( ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )* )?
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==CADENA||LA23_0==IDENT||LA23_0==NUMERO) ) {
                alt23=1;
            }
            switch (alt23) {
                case 1 :
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:37: ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )*
                    {
                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:37: ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA )
                    int alt19=3;
                    switch ( input.LA(1) ) {
                    case IDENT:
                        {
                        alt19=1;
                        }
                        break;
                    case NUMERO:
                        {
                        alt19=2;
                        }
                        break;
                    case CADENA:
                        {
                        alt19=3;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 19, 0, input);

                        throw nvae;

                    }

                    switch (alt19) {
                        case 1 :
                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:38: IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )?
                            {
                            match(input,IDENT,FOLLOW_IDENT_in_llamada_funcion316); 

                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:43: ( ACORCHETE ( NUMERO ) CCORCHETE )?
                            int alt18=2;
                            int LA18_0 = input.LA(1);

                            if ( (LA18_0==ACORCHETE) ) {
                                alt18=1;
                            }
                            switch (alt18) {
                                case 1 :
                                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:44: ACORCHETE ( NUMERO ) CCORCHETE
                                    {
                                    match(input,ACORCHETE,FOLLOW_ACORCHETE_in_llamada_funcion318); 

                                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:54: ( NUMERO )
                                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:55: NUMERO
                                    {
                                    match(input,NUMERO,FOLLOW_NUMERO_in_llamada_funcion321); 

                                    }


                                    match(input,CCORCHETE,FOLLOW_CCORCHETE_in_llamada_funcion324); 

                                    }
                                    break;

                            }


                            }
                            break;
                        case 2 :
                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:77: NUMERO
                            {
                            match(input,NUMERO,FOLLOW_NUMERO_in_llamada_funcion330); 

                            }
                            break;
                        case 3 :
                            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:85: CADENA
                            {
                            match(input,CADENA,FOLLOW_CADENA_in_llamada_funcion333); 

                            }
                            break;

                    }


                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:93: ( COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA ) )*
                    loop22:
                    do {
                        int alt22=2;
                        int LA22_0 = input.LA(1);

                        if ( (LA22_0==COMA) ) {
                            alt22=1;
                        }


                        switch (alt22) {
                    	case 1 :
                    	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:94: COMA ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA )
                    	    {
                    	    match(input,COMA,FOLLOW_COMA_in_llamada_funcion337); 

                    	    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:99: ( IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )? | NUMERO | CADENA )
                    	    int alt21=3;
                    	    switch ( input.LA(1) ) {
                    	    case IDENT:
                    	        {
                    	        alt21=1;
                    	        }
                    	        break;
                    	    case NUMERO:
                    	        {
                    	        alt21=2;
                    	        }
                    	        break;
                    	    case CADENA:
                    	        {
                    	        alt21=3;
                    	        }
                    	        break;
                    	    default:
                    	        NoViableAltException nvae =
                    	            new NoViableAltException("", 21, 0, input);

                    	        throw nvae;

                    	    }

                    	    switch (alt21) {
                    	        case 1 :
                    	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:100: IDENT ( ACORCHETE ( NUMERO ) CCORCHETE )?
                    	            {
                    	            match(input,IDENT,FOLLOW_IDENT_in_llamada_funcion340); 

                    	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:105: ( ACORCHETE ( NUMERO ) CCORCHETE )?
                    	            int alt20=2;
                    	            int LA20_0 = input.LA(1);

                    	            if ( (LA20_0==ACORCHETE) ) {
                    	                alt20=1;
                    	            }
                    	            switch (alt20) {
                    	                case 1 :
                    	                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:106: ACORCHETE ( NUMERO ) CCORCHETE
                    	                    {
                    	                    match(input,ACORCHETE,FOLLOW_ACORCHETE_in_llamada_funcion342); 

                    	                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:116: ( NUMERO )
                    	                    // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:117: NUMERO
                    	                    {
                    	                    match(input,NUMERO,FOLLOW_NUMERO_in_llamada_funcion345); 

                    	                    }


                    	                    match(input,CCORCHETE,FOLLOW_CCORCHETE_in_llamada_funcion348); 

                    	                    }
                    	                    break;

                    	            }


                    	            }
                    	            break;
                    	        case 2 :
                    	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:139: NUMERO
                    	            {
                    	            match(input,NUMERO,FOLLOW_NUMERO_in_llamada_funcion354); 

                    	            }
                    	            break;
                    	        case 3 :
                    	            // C:\\Users\\GMIRIAM\\workspace\\p5\\src\\main\\java\\PL\\p5\\parserFLEX.g:35:147: CADENA
                    	            {
                    	            match(input,CADENA,FOLLOW_CADENA_in_llamada_funcion357); 

                    	            }
                    	            break;

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop22;
                        }
                    } while (true);


                    }
                    break;

            }


            match(input,CPARENTESIS,FOLLOW_CPARENTESIS_in_llamada_funcion364); 

            }

        }
        catch (RecognitionException e) {
          throw e;}
         
        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "llamada_funcion"

    // Delegated rules


 

    public static final BitSet FOLLOW_def_token_in_entrada46 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_def_variables_in_entrada48 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_def_reglas_in_entrada50 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_funcion_in_entrada52 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entrada54 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_def_token62 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ACORCHETE_in_def_token64 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_RANGO_in_def_token67 = new BitSet(new long[]{0x0000004000002000L});
    public static final BitSet FOLLOW_CCORCHETE_in_def_token71 = new BitSet(new long[]{0x0000000001000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_variables80 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ALLAVE_in_def_variables82 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_TIPO_in_def_variables85 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_IDENT_in_def_variables87 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_PUNTOYCOMA_in_def_variables89 = new BitSet(new long[]{0x0000011000000000L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_variables93 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_CLLAVE_in_def_variables95 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_regla1_in_regla103 = new BitSet(new long[]{0x0000000001000080L});
    public static final BitSet FOLLOW_regla2_in_regla105 = new BitSet(new long[]{0x0000000001000080L});
    public static final BitSet FOLLOW_regla3_in_regla108 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CALLIDENT_in_regla1114 = new BitSet(new long[]{0x0000000080000102L});
    public static final BitSet FOLLOW_APARENTESIS_in_regla2127 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_CALLIDENT_in_regla2129 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_OR_in_regla2132 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_CALLIDENT_in_regla2134 = new BitSet(new long[]{0x0000000800100000L});
    public static final BitSet FOLLOW_CPARENTESIS_in_regla2138 = new BitSet(new long[]{0x0000000080000102L});
    public static final BitSet FOLLOW_IDENT_in_regla3151 = new BitSet(new long[]{0x0000000004200000L});
    public static final BitSet FOLLOW_set_in_regla3153 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_PUNTOYCOMA_in_regla3159 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_reglas166 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_reglas168 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_regla_in_def_reglas171 = new BitSet(new long[]{0x0000001000001000L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_reglas175 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_PORCENTAJE_in_def_reglas177 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_def_funcion_in_funcion185 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_def_cuerpo_in_funcion187 = new BitSet(new long[]{0x0000010000000002L});
    public static final BitSet FOLLOW_TIPO_in_def_funcion195 = new BitSet(new long[]{0x0000000041000000L});
    public static final BitSet FOLLOW_set_in_def_funcion197 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_APARENTESIS_in_def_funcion203 = new BitSet(new long[]{0x0000030000000000L});
    public static final BitSet FOLLOW_VOID_in_def_funcion206 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_llamada_variable_in_def_funcion211 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_COMA_in_def_funcion214 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_llamada_variable_in_def_funcion216 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_CPARENTESIS_in_def_funcion222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIPO_in_llamada_variable228 = new BitSet(new long[]{0x0000000001000100L});
    public static final BitSet FOLLOW_ASTERISCO_in_llamada_variable231 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_IDENT_in_llamada_variable235 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_ACORCHETE_in_llamada_variable238 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_CCORCHETE_in_llamada_variable240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALLAVE_in_def_cuerpo248 = new BitSet(new long[]{0x0000008001008000L});
    public static final BitSet FOLLOW_sentencia_in_def_cuerpo252 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_retorno_in_def_cuerpo255 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_PUNTOYCOMA_in_def_cuerpo258 = new BitSet(new long[]{0x0000008001008000L});
    public static final BitSet FOLLOW_CLLAVE_in_def_cuerpo262 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RETURN_in_retorno268 = new BitSet(new long[]{0x0000000400000800L});
    public static final BitSet FOLLOW_set_in_retorno270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_sentencia283 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_IGUAL_in_sentencia285 = new BitSet(new long[]{0x0000000401000800L});
    public static final BitSet FOLLOW_llamada_funcion_in_sentencia288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_sentencia292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_llamada_funcion_in_sentencia304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_llamada_funcion310 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_APARENTESIS_in_llamada_funcion312 = new BitSet(new long[]{0x0000000401100800L});
    public static final BitSet FOLLOW_IDENT_in_llamada_funcion316 = new BitSet(new long[]{0x0000000000110010L});
    public static final BitSet FOLLOW_ACORCHETE_in_llamada_funcion318 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_NUMERO_in_llamada_funcion321 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_CCORCHETE_in_llamada_funcion324 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_NUMERO_in_llamada_funcion330 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_CADENA_in_llamada_funcion333 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_COMA_in_llamada_funcion337 = new BitSet(new long[]{0x0000000401000800L});
    public static final BitSet FOLLOW_IDENT_in_llamada_funcion340 = new BitSet(new long[]{0x0000000000110010L});
    public static final BitSet FOLLOW_ACORCHETE_in_llamada_funcion342 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_NUMERO_in_llamada_funcion345 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_CCORCHETE_in_llamada_funcion348 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_NUMERO_in_llamada_funcion354 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_CADENA_in_llamada_funcion357 = new BitSet(new long[]{0x0000000000110000L});
    public static final BitSet FOLLOW_CPARENTESIS_in_llamada_funcion364 = new BitSet(new long[]{0x0000000000000002L});

}